Proving Properties about Lists Using Containers
نویسندگان
چکیده
Bundy and Richardson [7] presented a technique for reasoning about lists using ellipsis (the dots in 1+2+ . . .+10), where a polymorphic function, denoted by 2, is used to encapsulate recursive definitions of list functions and a portrayal system using ellipsis gives an informal proof. We highlight certain limitations of this technique and address these limitations using the recently developed theory of containers which capture the idea that many important datatypes consist of templates where data is stored. We implement our ideas in Coq and demonstrate how they can be used to prove theorems that eluded Bundy and Richardson in [7].
منابع مشابه
Aspects of the theory of containers within automated theorem proving
This thesis explores applications of the theory of containers within automated theorem proving. Container theory provides a foundational analysis of data types as containers, specified by a type S of shapes and a function P assigning to each shape its set of positions for data. More importantly, a representation theorem guarantees that polymorphic functions between container data types are give...
متن کاملProving Properties about Functions on Lists Involving Element Tests
Bundy and Richardson [4] developed a method for reasoning about functions manipulating lists which is based on separating shape from content, and then exploiting a mathematically convenient representation for expressing shape-only manipulations. Later, Prince et al. [7] extended the technique to other data structures, and gave it a more formal basis via the theory of containers. All these resul...
متن کاملDeciding Properties of Lists using Containers
We exploit the ability to represent data types as container functors [2,1,3] to develop a novel approach to proving properties of lists using arithmetic decision procedures. Containers capture the idea that concrete data types can be characterised by specifying the shape values take and for every possible shape, explaining where positions within that shape are stored. More importantly, a repres...
متن کاملReasoning from Radically Incomplete Information: The Case of Containers
In domains such as physical reasoning, humans, unlike programs for scientific computation, can often arrive at useful predictions based on radically incomplete information. Consider the capacity to reason about containers ― boxes, bottles, cups, pails, bags, etc ― and the interactions of containers with their contents. You can reason that you can carry groceries in a grocery bag and that they w...
متن کاملCorrect Code Containing Containers
For critical software development, containers such as lists, vectors, sets or maps are an attractive alternative to ad-hoc data structures based on pointers. As standards like DO-178C put formal verification and testing on an equal footing, it is important to give users the ability to apply both to the verification of code using containers. In this paper, we present a definition of containers w...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2008